package com.hyny.framework.utils;

import cn.hutool.core.util.ClassUtil;

import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

/**
 * hutool的ClassUtil 增强
 */
public class ClassEnhanceUtil extends ClassUtil {


    /**
     * 获取指定类中包含指定注解的方法
     * @param cclass 获取的类
     * @param annotationClass 注解
     * @return 方法
     */
    public static List<Method>  getMethodsDirectlyAnnotation(Class<?> cclass, final Class<? extends Annotation> annotationClass){
        List<Method> methods=new ArrayList<>();
        Method[]  methodAll= getPublicMethods(cclass);
        for (Method method: methodAll
             ) {
            if(method.getAnnotation(annotationClass)!=null){
                methods.add(method);
            }
        }
        return methods;
    }

}
